package com.macro.mall.wms.service;

import com.macro.mall.common.api.CommonPage;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.model.*;
import com.macro.mall.wms.dto.InVentoryStorageDto;
import com.macro.mall.wms.dto.WmsCheckStorageDto;
import com.macro.mall.wms.dto.WmsInventoryListParam;

import java.util.List;

/**
 * 盘点
 * @author zhouboyu
 * @Date 2020年9月7日
 */
public interface IInventoryService {

    /**
     * 获取盘点商品列表
     * @author 孙晓亮
     * @Date 2020年9月14日
     * @param currentUserName
     * @param wmsCheckStorageDto
     * @return
     */
    List<CheckStorageVo> getCheckProductList(UmsAdmin admin,String currentUserName, WmsCheckStorageDto wmsCheckStorageDto);

    List<CheckStorageVo> getStockList(UmsAdmin admin,String currentUserName, WmsCheckStorageDto wmsCheckStorageDto);
    /**
     * 生成盘点单
     * @author 孙晓亮
     * @Date 2020年9月14日
     * @param wmsCreateCheckStorageDtoList
     * @return
     */
    CommonResult createCheck(UmsAdmin admin,List<WmsCreateCheckStorageDto> wmsCreateCheckStorageDtoList,Long storeId);

    /**
     * 查询所有盘点单
     * @param wmsInventoryListParam
     * @return
     */
    CommonPage<InVentoryStorageDto> getInventoryList(WmsInventoryListParam wmsInventoryListParam);

    /**
     * 查询盘点单商品
     * @param id
     * @return
     */
    CommonResult<List<WmsInventoryStorageItemDTO>> getInventoryStorageItems(Long id);
}
